﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class RepresentativeOrganisationData : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IRepresentativeOrganisationData {
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IOrganisation @__representativeOrganisation;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.RepresentativeType @__type;
        
        private bool @__isSender;
        
        private System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IContactInformation> @__contactInformation = new System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IContactInformation>();
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IAddress @__address;
        
        public RepresentativeOrganisationData() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public RepresentativeOrganisationData(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IOrganisation @representativeOrganisation, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.RepresentativeType @type, bool @isSender, System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IContactInformation> @contactInformation, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IAddress @address) {
            this.@__representativeOrganisation = @representativeOrganisation;
            this.@__type = @type;
            this.@__isSender = @isSender;
            this.@__contactInformation = @contactInformation;
            this.@__address = @address;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public RepresentativeOrganisationData(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IOrganisation @representativeOrganisation, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.RepresentativeType @type, bool @isSender, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IAddress @address) {
            this.@__representativeOrganisation = @representativeOrganisation;
            this.@__type = @type;
            this.@__isSender = @isSender;
            this.@__address = @address;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected RepresentativeOrganisationData(IRepresentativeOrganisationData @representativeOrganisationData) {
            this.@__representativeOrganisation = @representativeOrganisationData.RepresentativeOrganisation;
            this.@__type = @representativeOrganisationData.Type;
            this.@__isSender = @representativeOrganisationData.IsSender;
            this.@__contactInformation = @representativeOrganisationData.ContactInformation;
            this.@__address = @representativeOrganisationData.Address;
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IOrganisation RepresentativeOrganisation {
            get {
                return this.@__representativeOrganisation;
            }
            set {
                this.@__representativeOrganisation = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.RepresentativeType Type {
            get {
                return this.@__type;
            }
            set {
                this.@__type = value;
            }
        }
        
        public virtual bool IsSender {
            get {
                return this.@__isSender;
            }
            set {
                this.@__isSender = value;
            }
        }
        
        public virtual System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IContactInformation> ContactInformation {
            get {
                return this.@__contactInformation;
            }
            set {
                this.@__contactInformation = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IAddress Address {
            get {
                return this.@__address;
            }
            set {
                this.@__address = value;
            }
        }
    }
}
